其他
CVE-2012-0158 office缓冲区溢出漏洞报告
本文为看雪论坛优秀文章
1
软件简介
2
漏洞成因
3
利用过程
office2010上会使用ROP进行绕过DEP和ASLR,需要通过文件——打开的方式运行恶意样本。
加入一个弹计算器的payloads,填写样本必要参数生成样本。
7.1 POC弹出了计算器,那么很可能调用的API是以下几个:
system 导出模块是ucrtbase.dll,word不一定会加载。
微软符号服务器:http://msdl.microsoft.com/download/symbols,
断到WinExec:
查看堆栈,发现栈破坏严重,无法得到有效信息。
正常的函数调用call 的地址距离 0FFA000(堆栈)很远。
栈回溯看看调用处是否像是ShellCode:
有较多pop 还有popad 看着像是ShellCode(往上找,找到一些NOP)。
是JMP ESP,那么应该就是溢出点的位置,后应该就是ShellCode了。
分析:因为此时调用堆栈窗口无有效信息,栈被破坏,而且存在jmp esp指令,那么这个是一个栈溢出漏洞。
将jmp esp 后的shellCode删掉,最小样本法。
无ShellCode的样本已经崩溃,异常偏移不一定就是出错的位置,调试看看:
查看栈中数据:
看到栈中有一些之前调用的信息,
重新调试在MSCOMCTL!DllCanUnloadNow+0xc7d位置设置断点,查看:
命令:sxe ld:MSCOMCTL.OCX// 断下后设置断点bp MSCOMCTL!DllCanUnloadNow+0xc7d
发现异常,而且esp全为0,看来在这个位置之前就已经被溢出了,需要继续向上查找 。
bp MSCOMCTL!DllGetClassObject+0x41cc6
4
漏洞成因
5
PoC
6
结语
看雪ID:钢针
https://bbs.pediy.com/user-home-924661.htm
# 往期推荐
球分享
球点赞
球在看
点击“阅读原文”,了解更多!